02. 命名空间
命名空间
在开始进一步练习 C++向量之前,你需要把 C++ 向变得更易于读写。你可能已经注意到,使用标准库的时候,你必须写大量 “std”。例如,std::cout or std::string or std::vector。
std 被称为 命名空间 。简而言之,命名空间是将代码组织成逻辑组的方式。在本例中,std 是标准库的命名空间。
实际上,你可以在 main.cpp 文件的顶部声明你的名称空间,然后就无需在代码中重复:
std::
上述代码。下面是一个例子:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> intvectorvariable;
int intvariable = 5;
cout << intvariable << endl;
return 0;
}
请注意,向量声明、cout 和 endl 不再需要 std ::。
声明命名空间的好处是,代码读写更容易。缺点是,变量和函数的命名必须更加小心。之前,你可能会这么写:
std::cout
让你的程序知道,你指的是来自标准库的 cout 函数。这样,C++ 应该就可以让你实际创建一个名为 cout 的变量或函数。这并不是一个好主意,但代码不会报错。一旦你添加了代码
using namespace std;
,再输入
cout
就会引用标准库中的函数 cout。
从现在开始,练习和代码示例将包含
using namespace std;
代码行。
命名空间
SOLUTION:
- 命名空间可以将相关的代码组合在一起。
- 命名空间可以避免变量名、函数名和类名之间的冲突。
- 在程序顶部声明一个命名空间,可以避免在代码中多次写出命名空间的名称。
你现在可以使用命名空间来简化向量句法啦。 让我们对比一下 Python 与 C++ 向量句法,并进行 C++ 向量代码练习。
命名空间练习
使用标准库命名空间,更改代码,让代码不再使用 "std::"。
Start Quiz:
#include <iostream>
#include <string>
// TODO: Use the standard namespace
int main() {
// TODO: change the code so that it no longer uses "std::"
std::string fruit = "apple";
std::string vegetable = "broccoli";
std::cout << "My favorite fruit is " << fruit <<
" and my favorite vegetable is " << vegetable << "\n";
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
string fruit = "apple";
string vegetable = "broccoli";
cout << "My favorite fruit is " << fruit <<
"and my favorite vegetable is " << vegetable << "\n";
return 0;
}